public class test1 {
    public static void main1(String[] args) {
        //整形 int
        // 方式一：在定义时给出初始值
         int a = 10;
         System.out.println(a);
        // 方式二：在定义时没有给初始值，但使用前必须设置初值
         int b;
         b = 10;
         System.out.println(b);
        // 使用方式二定义后，在使用前如果没有赋值，则编译期间会报错
        //int c;
        //System.out.println(c);
        //c = 100;
        // int型变量所能表示的范围：
         System.out.println(Integer.MIN_VALUE);
         System.out.println(Integer.MAX_VALUE);
        // 注意：在定义int性变量时，所赋值不能超过int的范围
        // int d = 12345678901234; // 编译时报错，初值超过了int的范围
    }

    public static void main2(String[] args) {
        //长整型long
        int a = 10;
        long b = 10;// long定义的长整型变量
        long c = 10L;
        // 为了区分int和long类型，一般建议：long类型变量的初始值之后加L或者l
        long d = 10l;
        // 一般更加以加大写L，因为小写l与1不好区分
        // long型变量所能表示的范围：这个数据范围远超过 int 的表示范围. 足够绝大部分的工程场景使用.
        System.out.println(Long.MIN_VALUE);
        System.out.println(Long.MAX_VALUE);
    }

    public static void main3(String[] args) {
        //短整型short
        short a = 10;
        System.out.println(a);
        // short型变量所能表示的范围：
        System.out.println(Short.MIN_VALUE);
        System.out.println(Short.MAX_VALUE);
    }

    public static void main4(String[] args) {
        //字节型byte
        byte b = 10;
        System.out.println(b);
        // byte型变量所能表示的范围：
         System.out.println(Byte.MIN_VALUE);
         System.out.println(Byte.MAX_VALUE);
    }

    public static void main5(String[] args) {
        //双精度double
        double d = 3.14;
        System.out.println(d);
//        int a = 1;
//        int b = 2;
//        System.out.println(a / b); // 输出 0
        //在 Java 中, int 除以 int 的值仍然是 int(会直接舍弃小数部分)。如果想得到 0.5, 需要使用 double 类型计算
        double a = 1.0;
        double b = 2.0;
        System.out.println(a / b); // 输出0.5
        double num = 1.1;
        System.out.println(num * num); // 输出1.21吗？
        // 执行结果 1.2100000000000002

        //单精度float
        float num1 = 1.0f;
        // 写作 1.0F 也可以
        System.out.println(num1);
    }

    public static void main6(String[] args) {
        //字符型char
        char c1 = 'A';
        // 大写字母
        char c2 = '1';
        //数字字符
        System.out.println(c1);
        System.out.println(c2);
        // 注意：java中的字符可以存放整形
        char c3 = '帅';
        System.out.println(c3);
    }

    public static void main7(String[] args) {
        //布尔型boolean
        boolean b = true;
        System.out.println(b);
        b = false;
        System.out.println(b);
    }
    public static void main(String[] args) {
        //字符串型String
        String s1 = "hello";
        String s2 = " world";
        System.out.println(s1);
        System.out.println(s2);
        System.out.println(s1+s2); // s1+s2表示：将s1和s2进行拼接
        //int转string
        int num = 10;
        // 方法1
        String str1 = num + "";//字符串拼接会自动将int转化成字符串型
        // 方法2
        String str2 = String.valueOf(num);//利用String类中的方法valueOf
        System.out.println(str1);
        System.out.println(str2);
        //string转int
        String str = "100";
        int num1 = Integer.parseInt(str);//利用Integer类中的方法parseInt
        System.out.println(num1);
    }

}
